package vo

type UserProfileRep struct {
	UserID      int64  `json:"userId"`      // 用户ID
	DeptID      int64  `json:"deptId"`      // 部门ID
	DeptName    string `json:"deptName"`    // 部门名称
	UserName    string `json:"userName"`    // 用户账号
	NickName    string `json:"nickName"`    // 用户昵称
	UserType    string `json:"userType"`    // 用户类型（00系统用户）
	Email       string `json:"email"`       // 用户邮箱
	Phonenumber string `json:"phonenumber"` // 手机号码
	Sex         string `json:"sex"`         // 用户性别（0男 1女 2未知）
	Avatar      string `json:"avatar"`      // 头像地址
	Status      string `json:"status"`      // 帐号状态（0正常 1停用）
	Remark      string `json:"remark"`      // 备注
	CreatedAt   int64  `json:"createdAt"`   // 创建时间
}

// QueryUserListReq 查询用户列表参数
type QueryUserListReq struct {
	UserName    string     `json:"userName"`    // 用户名
	NickName    string     `json:"nickName"`    // 昵称
	Phonenumber string     `json:"phonenumber"` // 手机号码
	Status      string     `json:"status"`      // 状态
	DeptId      int64      `json:"deptId"`      // 部门id
	Params      *DateRange `json:"params"`      // 日期范围
	PageNum     int        `json:"pageNum"`     // 第几页
	PageSize    int        `json:"pageSize"`    // 一页多少行
}

type DateRange struct {
	BeginTime int64 `json:"beginTime"` // 创建开始时间
	EndTime   int64 `json:"endTime"`   // 创建结束时间
}

// QueryUserListEntity 用户分页查询
type QueryUserListEntity struct {
	UserID      int64  `json:"userId"`      // 用户ID
	DeptID      int64  `json:"deptId"`      // 部门ID
	DeptName    string `json:"deptName"`    // 部门名称
	UserName    string `json:"userName"`    // 用户账号
	NickName    string `json:"nickName"`    // 用户昵称
	UserType    string `json:"userType"`    // 用户类型（00系统用户）
	Email       string `json:"email"`       // 用户邮箱
	Phonenumber string `json:"phonenumber"` // 手机号码
	Sex         string `json:"sex"`         // 用户性别（0男 1女 2未知）
	Avatar      string `json:"avatar"`      // 头像地址
	Status      string `json:"status"`      // 帐号状态（0正常 1停用）
	Remark      string `json:"remark"`      // 备注
	CreatedAt   int64  `json:"createdAt"`   // 创建时间
}

// ChangeUserStatusReq 修改用户状态参数
type ChangeUserStatusReq struct {
	UserId int64  `json:"userId"` // 用户ID
	Status string `json:"status"` // 状态0正常1禁止
}

// ResetUserPwdReq 修改用户密码参数
type ResetUserPwdReq struct {
	UserId   int64  `json:"userId" validate:"gte=0"`                   // 用户ID
	Password string `json:"password" validate:"required,min=5,max=20"` // 密码
}

// EditUserReq 修改用户信息参数
type EditUserReq struct {
	UserId      int64   `json:"userId" validate:"required,gte=0"`    // 用户ID
	NickName    string  `json:"nickName" validate:"required,max=30"` // 用户昵称
	Email       string  `json:"email" validate:"max=50"`             // 用户邮箱
	Phonenumber string  `json:"phonenumber" validate:"max=11"`       // 手机号码
	Sex         string  `json:"sex" validate:"max=1"`                // 用户性别（0男 1女 2未知）
	Status      string  `json:"status" validate:"len=1"`             // 帐号状态（0正常 1停用）
	Remark      string  `json:"remark" validate:"max=500"`           // 备注
	DeptId      int64   `json:"deptId"`                              // 部门id
	PostIds     []int64 `json:"postIds"`                             // 岗位ids
	RoleIds     []int64 `json:"roleIds"`                             // 角色ids
	UpdateBy    string  `json:"updateBy"`                            // 修改人
}

type EditUserProfileReq struct {
	NickName    string `json:"nickName" validate:"required,max=30"` // 用户昵称
	Email       string `json:"email" validate:"max=50"`             // 用户邮箱
	Phonenumber string `json:"phonenumber" validate:"max=11"`       // 手机号码
	Sex         string `json:"sex" validate:"max=1"`                // 用户性别（0男 1女 2未知）
}

type UpdateUserPwdReq struct {
	OldPassword string `json:"OldPassword"` // 旧密码
	NewPassword string `json:"newPassword"` // 新密码
}

// AddUserReq 添加用户信息参数
type AddUserReq struct {
	UserName    string  `json:"userName" validate:"required,max=30"` // 用户名
	NickName    string  `json:"nickName" validate:"required,max=30"` // 用户昵称
	Email       string  `json:"email" validate:"max=50"`             // 用户邮箱
	Phonenumber string  `json:"phonenumber" validate:"max=11"`       // 手机号码
	Sex         string  `json:"sex" validate:"max=1"`                // 用户性别（0男 1女 2未知）
	Status      string  `json:"status" validate:"len=1"`             // 帐号状态（0正常 1停用）
	Remark      string  `json:"remark" validate:"max=500"`           // 备注
	Password    string  `json:"password" validate:"required,max=20"` // 密码
	DeptId      int64   `json:"deptId"`                              // 部门id
	PostIds     []int64 `json:"postIds"`                             // 岗位ids
	RoleIds     []int64 `json:"roleIds"`                             // 角色ids
	CreateBy    string  `json:"createBy"`                            // 创建人
}

// PutUserRoleReq 授权用户角色
type PutUserRoleReq struct {
	UserId  int64   `json:"userId" validate:"required,min=1"` // 用户id
	RoleIds []int64 `json:"roleIds" validate:"required"`      // 角色ids
}
